#ifndef INTERFACE_H_
#define INTERFACE_H_

#include "Controlador.h"
#include <string>

using namespace std;


/**
 * @class Interface
 * @brief Clase encargada de manejar la interfaz de usuario.
 * @details Debe crearse y llamarse al método correr() y luego este clase
 * @details tomara control del programa
 */
class Interface
{
	private:
		Controlador controlador;
		void buscarTitulo(string &titulo);
		void buscarAutor(string &autor);
		void buscarFrase(string &frase);
		vector<string> obtenerCanciones(vector<RegistroMF> vect);
		void mostrarEstadisticas();
		void indexarArchivo(string &path);
		void indexarDirectorio(string &path);
		void reindexar();
		void cambiarDestino(string &path);
		void mostrarResultados(vector<RegistroMF> &results);
		void getLinea(string &s);
		void getLineaNorm(string &s);
		void revisarPath(string &s);
		void limpiarPantalla();

	public:
		/**
		 * @brief Constructor
		 * @param controlador Controlador a usar para interactuar con el programa
		 */
		Interface();

		/**
		 *  @brief Corre la interfaz por consola. Tomando control del programa.
		 */
		void correr();
};

#endif /* INTERFACE_H_ */
